home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1997 September / Macworld (1997-09).dmg / Updaters / Helix 45->451 / Helix Engine 45->451 Patch / Expert Tools 4.5.1 / Read Me First < prev    next >
Text File  |  1997-06-19  |  17KB  |  217 lines

  1. Helix Technologies
  2. 744 Pinecrest Drive
  3. Prospect Heights, IL  60070
  4.  
  5. Technical Support:
  6. 847-465-0253 phone
  7. 847-465-0252 fax
  8.  
  9. email address - service - forum keyword
  10. helixtech - America Online - forum keyword: database
  11. helixtech - CompuServe - forum keyword: macdve
  12. support@helixtech.com - Internet - http://www.mcs.net/~helix/
  13. _________________________________________________________________
  14. The Expert Tools folder contains:
  15.     Resources - ResEdit templates to allow you to modify the behavior of some functions in Helix Express.
  16.     Recover File Document - detailed information concerning the placement of the Helix Recovery File.
  17.     Server Save Cursor OFF - Patch application to turn the Server Save cursor off (alters HSVC resource).
  18.     Problem Report Form - Template for sending reports of problems to Helix Technologies.
  19. _________________________________________________________________
  20. The ResEdit templates allow you to modify the behavior of some functions in Helix Express.
  21.  
  22. To use these templates you must own a copy of ResEdit which may be purchased from Apple. It is also available on Apple’s WWW site and through many online services such as America Online, AppleLink, and CompuServe.
  23.  
  24. Always make these changes on a copy of the Helix Express software. ResEdit is a useful application but it can leave a file unopenable if not used properly. In short, do not use this software without supervision if you do not know what you are doing.
  25.  
  26. Finally, these templates will change the way Helix Express functions. If you run into problems with Helix after modifying an application we will not always be able to help you with the problem. In case you do run into a problem, reinstall a clean copy of Helix Express and see if the problem persists. If so, contact Helix Technical Support.
  27.  
  28. _________________________________________________________________
  29. To install ResEdit templates:
  30.  
  31.  1) Make a copy of ResEdit and name it “Helix ResEdit”.
  32.  2) Launch any copy of ResEdit except “Helix ResEdit”.
  33.  3) From within ResEdit, open the file “Resources” included in the Expert Tools folder.
  34.  4) Click on the TMPL resource icon.
  35.  5) Copy it (Command - C).
  36.  6) Close the “Resources” file.
  37.  7) From within ResEdit, open the “Helix ResEdit” application (from step 1).
  38.  8) Paste (Command - V) the TMPL resource (from step 5) into “Helix ResEdit”.
  39.  9) If ResEdit asks if you want to “Replace resources with the same ID?”
  40.     click on the “Unique ID” button.
  41.  9) Close and quit while saving changes.
  42. 10) Use the copy of ResEdit named “Helix ResEdit” when you need to modify
  43.     Helix Express files.
  44.  
  45. NOTE: An alternative to pasting the ResEdit templates directly into a copy of ResEdit is to paste them into your ResEdit Preferences file. This file is found in your System Folder’s Preferences folder in System 7.
  46. _________________________________________________________________
  47. Template Description:
  48.  
  49. HADM - ID0 - controls how often the Server Info Window and the Client Info Window are automatically refreshed. The default is to refresh these windows (if they are open) every three seconds.
  50.  
  51. HCCC - ID0 - controls the allocation of memory between the data cache and the structure cache. See below for detailed information.
  52.  
  53. HCHK - ID1 - changes time (in seconds) between checks for an interruption during command-period operations
  54.  
  55. HCLT - ID1 - turns client cache on (if non-zero) or off.
  56.  
  57. HCSM - ID1 - When non-zero (the default setting 0000), allow a Client to visit a Server which is running on the same machine. 
  58.  
  59. HDTM - ID1 - When non-zero (the default setting 0001), attempt to use temporary MultiFinder memory during saves. 
  60.  
  61. HDTP - ID0 - modifies DAT table size to control the frequency of DAT saves. See below for detailed information.
  62.  
  63. HKWT - ID1 - modifies keyword field mechanism to ignore or recognize different characters.
  64.  
  65. HMTS - ID2 - controls the Thread Manager Stack Space (used only on the PowerPC). This only applies if it is a non-zero value. If the value is zero, the Helix thread manager not the MacOS thread manager is used. If your Server or Full Mode application is running on a PowerPC and crashing with System Error Type 11 you may need to increase this value. Do not raise this value too high because the Thread Manager may monopolize RAM that it does not need. To raise the “Thread Manager Stack Space”, open a copy of the application (Helix Express or Helix Express Server) with ResEdit. Open the “HMTS ID=2” resource. This resource will be set to zero, which means that the MacOS Thread Manager will not be used by Helix Express. If you want to use the MacOS Thread Manager instead of the Helix thread manager, enter a value of 92,160 (which is 90K) to start with.
  66.  
  67. The default Thread Manager Stack Space value appears to be very small. But, on the Server, this value is multiplied by the number of clients visiting a Collection at any given moment. For example, if 5 clients are visiting a PowerPC Helix Express Server, then the amount of RAM allocated to the thread manager is 90K x 5 = 450K. So with 5 clients about 0.5 MB of RAM on your Server machine is used for the thread manager. Setting this value too high (200K for example) can cause a RAM shortage for the Helix caches and other basic Helix operations.
  68.  
  69. HOPL - modifies PowerQuery mechanism to ignore or recognize different query operators. See below for detailed information.
  70.  
  71. HPTO - ID0 - Helix tries to avoid LaserWriter printer time outs if this is on (set to non-zero). But this may cause Helix to print a blank page occasionally.
  72.  
  73. HRFL - ID0 - changes location of recover file. Helix follows a built-in algorithm to determine the location of its Recover file. We have included a file on this disk which explains how this mechanism works and how to suggest a better location for this file. This is especially useful to those who want to place the Recover file on a ram disk. (also see HTMP)
  74.  
  75. HSTT - ID3 - stores options for the duplicate icon command. You can control the offset position of the new icon, whether to append a string to the beginning or end of the name, and what string to append. By default, this resource is set to append the string “ copy” to the end of the icon name.
  76.  
  77. HSVC - ID1 - turns the “server saving” cursor that appears on the client on (if non-zero) or off. This resource only appears in the server application. We have also included a Patch application to turn the save cursor off.
  78.  
  79. HTHU - ID5000 - controls how often Helix checks for an interruption (command-period) during a thermometer operation (such as post all, dump all, delete all, dump, load).
  80.  
  81. Details on HTHU resource:  The current setting is 3,277 which represents the fraction 3,277 / 32,767 which equals 1/10. Therefore the default is for events such as interrupt to be checked 10 times as the thermometer fills in.
  82. Here are two sample HTHU settings that you can use and a description of the trade-offs of each. A setting of 6,554 would cause Helix to check for interruptions less frequently, so the operation being executed (‘post all’ for example) is faster, but Helix’s response to a command-period action is slower. A setting of 1,637 would cause Helix to check for interruptions more frequently, so Helix’s response to a command/period action if faster but the operation being executed is slower.
  83.  
  84. HTMP - ID0 - When non-zero (the default setting 0001), the temporary files (Recover File, Data File) are placed in the invisible “Temporary Items” folder (on the volume defined by the HRFL resource if it is defined) if it is possible to do so. The System must support “FindFolder” for this to work. During a Save, the St. Bernard file is moved out of Temporary Items until the save is finished. Setting HTMP to 0000 will restore the old temporary file behavior—files will be placed on the root level of a volume.
  85.  
  86. _________________________________________________________________
  87. Helix Express Cache Settings -- The HCCC Resource
  88.  
  89. The HCCC resource controls the allocation of memory between two caches: the Structure Cache, which holds code resources and collection structure; and the Data Cache, which holds records and indices. You will find a report on how memory is being used by these caches in the Server Info or Full Mode Info dialogue. It is possible to adjust these caches by changing the Application partition (using Get Info in the Finder) and/or by changing the cache preferences in the HCCC resource.
  90.  
  91. Using ResEdit, open Helix (Express, Server, or Client) resource HCCC ID 0
  92.  
  93. By default, this resource contains the following data.
  94. (Helix Express data shown; Server and Client are slightly different)
  95.  
  96. 0001 001F FFFF 0047
  97. FFFF 000F FFFF 0000
  98. 0003 0000 0004 0000
  99. 0004 0000 0400 0000
  100. C350 0001 1170
  101.  
  102. If you’ve installed the HCCC template, you will see the names of each setting and numbers represented in decimal bytes instead of the raw hex data shown above.
  103.  
  104. All numbers are in Hex and represent:
  105.  
  106. 0001     - Asynch IO      - 0001 = Asynch IO ON; 0000 = Asynch IO OFF. Default is OFF for Server,
  107.                                        ON for Full Mode, Client, and Runtime
  108. 001FFFFF - MinAppHeap 68K - minimum size of 680x0 application heap before segregated heap is
  109.                                        considered (2,097,151 Bytes Default)
  110. 0047FFFF - MinAppHeap PPC - minimum size of PowerPC application heap before segregated heap is 
  111.                                        considered (4,718,591 Bytes Default)
  112. 000FFFFF - MinPrivateHeap - Minimum size of segregated heap (1,048,575 Bytes Default) †
  113. 00000003 - Excess Numerator
  114. 00000004 - Excess Denominator
  115. 00000004 - ignore
  116. 00000400 - ignore
  117. 0000C350 - ignore
  118. 00011170 - ignore
  119.  
  120. Helix uses the following heuristics to decide whether or not to allocate memory in two (segregated) caches or one (integrated) cache:
  121.  
  122. Excess Numerator / Excess Denominator = P = proportion of application memory to be segregated for the data cache’s heap (3/4 Default)
  123.  
  124. (Application partition - MinAppHeap) * P = Data Cache allocation
  125.  
  126. Application partition - Data Cache allocation = Structure Cache allocation
  127.  
  128. † If the Data Cache allocation is greater than or equal to MinPrivateHeap then it is OK to create segregated caches. If the Data Cache allocation is less than MinPrivateHeap, then an integrated cache is used (structure and data are stored together in a single cache).
  129.  
  130. Here are results of different settings (all using MinAppHeap for 680x0):
  131.  
  132. Using default cache settings:
  133.  
  134. Application     Data      Structure
  135. partition       Cache     Cache
  136.     2048K          0K     2048K (Integrated Cache)
  137.     3584K       1153K     2431K (Segregated Cache)
  138.     4096K       1536K     2560K (Segregated Cache)
  139.     6144K       3072K     3072K (Segregated Cache)
  140.    10240K       6144K     4096K (Segregated Cache)
  141.  
  142. Increase MinAppHeap to 3FFFFE (4095K):
  143.  
  144. Application     Data      Structure
  145. partition       Cache     Cache
  146.     2048K          0K     2048K (Integrated Cache)
  147.     3584K          0K     3584K (Integrated Cache)
  148.     4096K          0K     4096K (Integrated Cache)
  149.     6144K       1536K     4608K (Segregated Cache)
  150.    10240K       4608K     5632K (Segregated Cache)
  151.  
  152. Change Excess Numerator to 1 and Excess Denominator to 2 (P = 1/2):
  153.  
  154. Application     Data      Structure
  155. partition       Cache     Cache
  156.     2048K          0K     2048K (Integrated Cache)
  157.     3584K          0K     3584K (Integrated Cache)
  158.     4096K          0K     4096K (Integrated Cache)
  159.     6144K       2048K     4096K (Segregated Cache)
  160.    10240K       4096K     6144K (Segregated Cache)
  161.  
  162. _________________________________________________________________
  163. Helix Express HDTP Resource
  164.  
  165. The DAT table in Helix is a table of where information will be stored in the collection when a save is performed. This technique makes a save operation a very simple to implement commit operation. Likewise the rollback (revert) operation is very simple to execute. A problem occurs when the DAT table fills up and needs to be flushed. The best solution at this time is to force an autosave. Whenever you see an unscheduled autosave, it is probably a DAT save. This can only happen when the DAT table fills up or when free disk space is at a very low amount. The most common cause of a DAT save is overwhelmingly due to the DAT filling up.
  166.  
  167. The DAT table in Helix Express version 4.0.3 (and older) held 10,000 (+/-2,000) pieces of information. The most common atomic piece of information for DAT purposes is a record. Whenever a piece of information changes, an entry in the DAT table is created. So, in older versions of Helix Express, one would not be surprised to see a DAT save occur when executing a post involving 10,000 records. A DAT save is probably best thought of as an emergency message and is not a fast operation (as you probably have noticed).
  168.  
  169. Each collection has its own DAT resource. The old DAT table resource (HDTP/0) contained 1 useful entry that produced the above mentioned 20,480 entry DAT table (we conservatively estimate that the DAT table has a 50% load factor resulting in handling of 10,000 pieces of information). Such a DAT table is 200K big in memory during execution time. This much memory is taken out of structure memory (see HCCC resource) and reserved solely for the DAT table.
  170.  
  171. In Helix Express 4.5, the HDTP/0 resource includes more entries to take advantage of larger Helix memory allocations. Each set of values corresponds to a Helix memory allocated greatest lower bound. Whenever this GLB is reached, the accompanying values are used.
  172.  
  173. There is no reason at all to change the HDTP resource in a collection unless you are experiencing these DAT saves and don't like them. Nothing else beneficial can occur.
  174.  
  175. While all the parameters in a memory allocation set can be changed, we only recommend that 3 numbers be changed and that they be changed to the same value (see HDTP ResEdit template). Furthermore this value must be a power of 2. If it is not a power of 2, code within Helix will round the value up so it is a power of 2. Any other changes to the set of values is at your own risk. Changing these values could drastically reduce the performance of your collection. And Helix will not investigate any such non-recommended changes.
  176.  
  177. The decision has been made to allocate the DAT table based on available memory. While one can make a case that DAT table size is better allocated on the number of atomic units in a collection (which is probably < 2 * number of records in the database), the algorithm needed to deduce this size is quite time-consuming and we don't expect the tradeoff to be worth it.
  178.  
  179. As the DAT table gets bigger, you may find that saves take longer. Then again you may not. In theory there will be an increase in time to perform a save operation (simply because the DAT can now hold more information before any kind of save occurs), but it may not be a noticeable increase due to efficient regular save code. Keep in mind that any potential increase in save time is a tradeoff and the cost of putting DAT saves (which are quite slow) off. Another expected result is that opening a collection will take a little longer with an larger DAT table. If you find the tradeoff unreasonable, you can always restore previous performance by changing the HDTP/0 resource.
  180.  
  181. By default, the HDTP resource contains the following settings for the three identical parameters:
  182.  
  183.     Memory Allocation (bytes)    3 Parameters (bytes)
  184.              0 to  9,999,999            2,048
  185.     10,000,000 to 29,999,999            4,096
  186.     30,000,000 to 69,999,999            8,192
  187.     70,000,000 or more                 16,384
  188.  
  189. _________________________________________________________________
  190. Helix Express HOPL Resources
  191.  
  192. The HOPL resources control what operators appear in the second slot (column) of the PowerQuery window. They are split into 4 different groups: Unary operators, Binary Text operators, Binary operators and Keyword operators.
  193.  
  194. These operators are listed in the resource according to their appearance in the Abacus Tile list in the Abacus Window. For example “=” is the 24th tile in the Abacus Tile list, so it is denoted in the HOPL resource ID=7403 as “24”.
  195.  
  196. Why would I want to change the HOPLs?
  197. You may want to globally remove a particular operator from the PowerQuery’s list of operators because a search using this operator can never be optimized. The “contains” operator is a good example of this. By removing the “contains” operator from the list of Binary Text operators, it will never appear in a PowerQuery that is opened from the copy of Helix Express that you modified.
  198.  
  199. The default operators are the following…
  200.  
  201. Unary Operators
  202. Resource HOPL ID=7401: “Defined”, “Undefined”
  203. NOTE: The Unary operators have not been implemented yet.
  204.  
  205. Binary Text Operators
  206. Resource HOPL ID=7402: “starts with”, “contains”, “ends with”
  207.  
  208. Binary Operators
  209. Resource HOPL ID=7403: “=”, “≠”, “<”, “≤”, “>”, “≥”
  210.  
  211. Keyword Operators
  212. Resource HOPL ID=7404: “word start with”, “word =”
  213.  
  214. In future versions of Helix, the tile numbers may change if a new tile is added to the Abacus tile list.
  215. _________________________________________________________________
  216. Helix Technologies makes the information in this document available on an “as is” basis, and is not responsible for its accuracy, use, or future compatibility with either Helix Technologies products or other products such as the operating system.
  217.